// 闭包与面向对象的设计
// 1.过程与数据的结合是形容面向对象中的“对象”时经常使用的表达式。对象以方法的形式包含了过程，而闭包则是在过程中以环境的形式包含数据。
// 2.用面向对象的思想实现的功能，用闭包同样也能实现。
/* 
    // 以闭包的形式实现 面向对象
    var Extent = function() {
        var value = 0;
        return {
            call: function() {
                value++;
                console.log(value)
            }
        }
    };

    var extent = Extent();
    extent.call();
    extent.call();
    extent.call();

    // 用面向对象的形式实现
    var obj = {
        value: 0,
        call: function() {
            this.value++;
            console.log(this.value);
        }
    }

    obj.call();
    obj.call();
    obj.call();

    var Ex = function() {
        this.value = 0;
    }

    Ex.prototype.call = function() {
        this.value++;
        console.log(this.value)
    }

    var ex = new Ex();
    ex.call();
    ex.call();
    ex.call();
 */